Sealos快速离线安装kubernetes

简介

以下来自官方文档

什么是sealos?

Sealos 是一个基于 Kubernetes 内核的云操作系统发行版。
它采用云原生方式,摒弃传统的云计算架构,转向以 Kubernetes 为云内核的新架构。
这使得企业可以像使用个人计算机一样毫不费力地使用云。

用户只需单击一个按钮即可在 Kubernetes 上安装任何高可用性分布式应用程序,类似于使用个人计算机。
它实际上不需要专业交付或运营成本。
同时,利用独特的集群成像功能,用户可以将任何分布式应用打包到 OCI 映像中,自由组合各种分布式应用,并轻松定制所需的云。
强大而灵活的应用商店功能,可以满足各种用户的多样化需求。

Sealos的功能

应用程序管理:在应用商店中轻松管理和快速发布可公开访问的分布式应用程序。
数据库管理:秒级创建高可用数据库,支持MySQL、PostgreSQL、MongoDB和Redis。
云通用性:在公有云和私有云中同样有效,支持传统应用程序向云的无缝过渡。

Sealos的优点

高效且经济:只需为您使用的容器付费;自动扩展可防止资源浪费并大幅降低成本。
高通用性和易用性:专注于您的核心业务活动,而不必担心系统复杂性;涉及的学习成本可以忽略不计。
敏捷性和安全性:独特的多租户共享模型确保了有效的资源分割和协作,所有这些都在安全的框架下进行。
下面开始一步步的小白式部署吧!

环境准备

有网络的环境下准备安装包

下载和安装 sealos

下载命令行工具 jp

1
apt install jq

查看当前的sealos命令行工具版本

1
curl --silent "https://api.github.com/repos/labring/sealos/releases" | jq -r '.[].tag_name'

选其中的稳定版

1
2
3
4
5
6
7
8
9
10
v5.0.0-beta5
v5.0.0-beta4
v4.4.0-beta3
v5.0.0-beta3
v5.0.0-beta2
v5.0.0-beta1
v4.3.7
v5.0.0-alpha2
v4.3.7-rc1
v4.3.6

用最新的稳定版4.3.7

下载

1
wget https://github.com/labring/sealos/releases/download/v4.3.7/sealos_4.3.7_linux_amd64.tar.gz

安装

1
tar zxvf sealos_4.3.7_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin

查看一下是否能使用,查看sealos镜像

1
2
root:/data/sealos# sealos images
REPOSITORY TAG IMAGE ID CREATED SIZE
k8s集群安装与打离线包

拉取

1
2
3
sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.28.0  \
registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 \
registry.cn-shanghai.aliyuncs.com/labring/calico:v3.25.0

查看拉取的镜像

1
2
3
4
5
root:/data/sealos# sealos images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.cn-shanghai.aliyuncs.com/labring/kubernetes v1.28.0 6ab50f9b0559 2 weeks ago 641 MB
registry.cn-shanghai.aliyuncs.com/labring/calico v3.25.0 89e401f61ae6 16 months ago 365 MB
registry.cn-shanghai.aliyuncs.com/labring/helm v3.9.4 3376f6822067 19 months ago 46.4 MB

导出镜像

1
2
3
sealos save -o kubernetes.tar registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.28.0
sealos save -o helm.tar registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4
sealos save -o calico.tar registry.cn-shanghai.aliyuncs.com/labring/calico:v3.25.0
准备的离线安装包如下
1
2
3
4
5
6
7
8
root:/data/sealos# ll
total 902388
drwxr-xr-x 2 root root 4096 May 16 06:47 ./
drwxr-xr-x 3 root root 4096 May 14 09:17 ../
-rw-r--r-- 1 root root 362235904 May 16 03:13 calico.tar
-rw-r--r-- 1 root root 14699008 May 16 03:13 helm.tar
-rw-r--r-- 1 root root 405593088 May 16 03:13 kubernetes.tar
-rw-r--r-- 1 root root 62963267 May 14 09:36 sealos_4.3.7_linux_amd64.tar.gz

无网络单机服务器环境准备

将上面的四个安装包放到无网络的单机服务器环境中

1
2
3
4
5
6
7
8
root:/data/sealos# ll
total 902388
drwxr-xr-x 2 root root 4096 May 16 06:47 ./
drwxr-xr-x 3 root root 4096 May 14 09:17 ../
-rw-r--r-- 1 root root 362235904 May 16 03:13 calico.tar
-rw-r--r-- 1 root root 14699008 May 16 03:13 helm.tar
-rw-r--r-- 1 root root 405593088 May 16 03:13 kubernetes.tar
-rw-r--r-- 1 root root 62963267 May 14 09:36 sealos_4.3.7_linux_amd64.tar.gz
禁用防火墙
1
2
systemctl stop firewalld
systemctl disable firewalld
禁用selinux

临时禁用

1
setenforce 0

永久禁用,编辑配置文件修改该行

1
2
vim /etc/selinux/config
SELINUX=disabled
禁用所有swap交换分区

注:最好是安装虚拟机时就不要创建swap交换分区

1
2
3
4
5
6
7
root@master:~#  swapoff -a							#禁用所有swap交换分区
root@master:~# free -h
total used free shared buff/cache available
Mem: 1.8G 280M 1.2G 9.6M 286M 1.4G
Swap: 0B 0B 0B
root@master:~# vim /etc/fstab #永久禁用swap,删除或注释掉/etc/fstab里的swap设备的挂载命令即可
#/swap.img none swap sw 0 0
设置主机名
1
2
3
cat >> /etc/hosts <<EOF
192.168.231.128 master
EOF

此步骤可以不用做,但是节点hostname 会显示不那么清晰

安装

安装 sealos

安装sealos命令

1
tar zxvf sealos_4.3.7_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin

查看一下是否能使用,查看sealos镜像

1
2
root:/data/sealos# sealos images
REPOSITORY TAG IMAGE ID CREATED SIZE

安装 k8s

1
2
root@ywadmin:/data/sealos# sealos run kubernetes.tar helm.tar calico.tar --cluster='k8s-cluster-test' \
> --masters=192.168.231.128

查看一下k8s是否可以使用

1
2
3
root:/data/sealos# kubectl get nodes 
NAME STATUS ROLES AGE VERSION
ywadmin Ready control-plane 78s v1.28.0

到此为止,单机版的k8s 安装完成

其他命令记录

sealos集群管理常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 添加工作节点
sealos add --nodes 192.168.0.111,192.168.0.112

# 添加主节点
sealos add --masters 192.168.0.106,192.168.0.107

# 删除工作节点
sealos delete --nodes 192.168.0.111,192.168.0.112

# 删除主节点
sealos delete --masters 192.168.0.106,192.168.0.107

# 清理集群
sealos reset

# 查看镜像
sealos images

# 拉取镜像
sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.28.0

# 导出镜像
sealos save -o kubernetes.tar registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.28.0
# 将导出镜像镜像加载
sealos load -i



# 离线安装,有主节点和子节点情况
sealos run kubernetes.tar helm.tar calico.tar --cluster='k8s-cluster-test' \
--masters=192.168.0.109,192.168.0.111 \
--nodes=192.168.0.110 \
-p admin123
# 如果配置了ssh免密则不需要加-p参数,在线安装不需要pull跟save的过程,直接run对应镜像就可

报错说明

1
error Applied to cluster error: render env to rootfs failed: failed to create template: /var/lib/containers/storage/overlay/424890351b0bc1f56a1f1cd8a371bdf29747b15c30d6b529929570a78d56d313/merged/etc/10-kubeadm.conf.tmpl template: 10-kubeadm.conf.tmpl:10: function "semverCompare" not defined

解决办法

升级版本4.3.7解决

一辈子很短,努力的做好两件事就好;
第一件事是热爱生活,好好的去爱身边的人;
第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;

继开 wechat
欢迎加我的微信,共同交流技术